/*****************************************************
 * サーバに対する検索要求を一元管理するレイヤ
 * @author kino
 *****************************************************/
function SearchLogic(actor){
}

/**
 * サーバに対して検索を実行する。帰ってきた結果は、指定されたactorのcallbackメソッドに渡す。
 * @param {AbstractResultsView} actor 検索を要求した主体。callbackメソッドが実装されているとする。非null。
 * @param {POST} query 検索クエリ。POST用のMapデータ。非null。
 */
SearchLogic.search = function(actor, query){
      $.post(ServerSettings.HOST_URL, query, function(result){actor.searchCallback(result)},"json");
}

SearchLogic.getMockupData = function(query){
    switch (query.type) {
        case ItemType.COMPOUND:
            return MockupCreator.createCompoundSearchResults();
        case ItemType.BUDGET:
            return MockupCreator.createBudgetSearchResults();
        case ItemType.OUTGOING:
            return MockupCreator.createOutgoingSearchResults();
        default:
            throw new Error("Unknown ItemType");
    }
}

/**
 * サーバに対して予算項目一覧の検索を実行する。帰ってきた結果は、指定されたactorのcallbackメソッドに渡す。
 * @param {AbstractResultsView} actor 検索を要求した主体。callbackメソッドが実装されているとする。非null。
 * @param {POST} query 検索クエリ。POST用のMapデータ。非null。
 */
SearchLogic.searchBudgetList = function(actor, query){
    //	$.post(ServerSettings.HOST_URL, query, function(result){actor.searchCallback(result)},"json");
    setTimeout(function(){
        var result = SearchLogic.getMockupBudgetList();
        actor.searchBudgetListCallback(result);
    }, 0);
}

SearchLogic.getMockupBudgetList = function(query){
    var result = [];
    for (var i = 0; i < 5; i++) {
        var budgetItem = {};
        budgetItem.budgetId = i;
        budgetItem.budgetName = "予算" + i;
        budgetItem.budget = i * 10000;
        result.push(budgetItem);
    }
    return result;
}

